<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //基本包装类型不可变,所有字符串方法都是返回一个新字符串，不会改变原字符串
        const str = "hello world,I am Superman "
        //indexof 查找某个元素在字符串中第一次出现的位置。第一个参数查找的目标，第二个参数是起始位置
        str.indexOf("o", 5)
        //lastIndexof 查找某个元素在字符串中最后一次出现的位置。第一个参数查找的目标，第二个参数是起始位置
        str.lastIndexOf("m", 8)
        //macth方法能够找出所有匹配的子字符串，并以数组的形式返回，如果匹配模式没有指定全局，则进行1次匹配。如果没找到则返回null
        str.match(/[a-d]/g)//配合正则使用
        //replace 替换字符串中的某元素
        str.replace("h", "H")//Hello world,I am Superman
        //search方法于indexOf的功能是相同的，查找指定字符串第一次出现的位置，但是只有一个参数，定义匹配模式，没有反向检索和全局模式。
        str.search("h")
        //slice 截取一段字符串，按位置截取，参数一起始位置，参数二结束位置（不包含结束位）
        str.slice(17, 25)//Superman
        //split 分割  split(separator, [howmany])把一个字符串分割成字符串数组，数组的长度小于等于howmany，separator指定空串会把每一个字符都切割
        str.split(" ")//["hello", "world,I", "am", "Superman", ""]
        //substr 截取，按长度截取 参数一 截取起始位置，参数二 截取长度
        str.substr(0, 5)//hello
        //substring与slice相同，但不接受负值
        str.substring(17, 25)//Superman
        //toLowerCase用于把字符串转换为小写。
        str.toLowerCase()
        //toUpperCase()用于把字符串转换为大写。
        str.toUpperCase()
        //padStart()当字符串不够某个长度的时候，在前边补充任意字符
        //padEnd()当字符串不够某个长度的时候，在后边补充任意字符
        str.padEnd(30, "#")//hello world,I am Superman ####
        str.padStart(30, "#")//####hello world,I am Superman 
        //trim、trimEnd、trimStart
    </script>
</body>

</html>